<html>
				<head>
				<meta http-equiv="content-type" content="text/html; charset=UTF-8">
				</head>
				<body><pre>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.freebsd.org/cgi/man.cgi?query=EXIT&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">EXIT(2)</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FreeBSD System Calls Manual &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.freebsd.org/cgi/man.cgi?query=EXIT&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">EXIT(2)</a></pre>
<pre>
<b>名称</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_exit -- 终止调用它的进程。</pre>
<pre>
<b>库</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Standard C Library (libc, -lc)</pre>
<pre>
<b>概要</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#include &lt;<font color="dark">unistd.h</font>&gt;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">void</font> <font color="blue">_exit</font>(<font color="red">int</font> <font color="green">status</font>);</pre>
<pre>
<b>详述</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>_exit()</font>系统调用将按以下步骤顺序终止进程：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关闭该进程打开的所有描述符。这可能使得进程挂起，比如等待清空输出；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;处于这种状态的进程无法被关闭，因为它已经处于关闭过程中。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果该进程的父进程调用了<a href="http://www.freebsd.org/cgi/man.cgi?query=wait&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">wait(2)</a>或设置了捕获<u>SIGCHLD</u>信号，那么该进程
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通知其父进程它将退出，并且设置<a href="http://www.freebsd.org/cgi/man.cgi?query=wait&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">wait(2)</a>中定义的对应状态参数。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该进程所有现存子进程的父进程ID将会被设置为1，<u>init</u>进程将成为这些
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;子进程的父进程（参见<a href="http://www.freebsd.org/cgi/man.cgi?query=init&sektion=8&apropos=0&manpath=FreeBSD+6.1-RELEASE">init(8)</a>及<a href="http://www.freebsd.org/cgi/man.cgi?query=intro&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">intro(2)</a>的定义部分）。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果该进程的退出造成了任一进程组成为孤儿（通常是因为进程组的所有父进程
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;均已退出，参见<a href="http://www.freebsd.org/cgi/man.cgi?query=intro&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">intro(2)</a>的'孤儿进程组'），如果此时孤儿进程组中的任一进程
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂停，<u>SIGHUP</u>和<u>SIGCONT</u>信号将会被发送至该孤儿进程组中的全部成员。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果该进程是控制进程（参见<a href="http://www.freebsd.org/cgi/man.cgi?query=intro&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">intro(2)</a>），<u>SIGHUP</u>信号将被发送到控制终端的前台
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;进程组，且控制终端的当前控制权被收回。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;绝大多数C程序调用库函数<a href="http://www.freebsd.org/cgi/man.cgi?query=exit&sektion=3&apropos=0&manpath=FreeBSD+6.1-RELEASE">exit(3)</a>，它将在调用<font color=blue>_exit()</font>之前，清空缓存，关闭输入
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;输出流，删除临时文件等。</pre>
<pre>
<b>返回值</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>_exit()</font>系统调用绝不可能返回。</pre>
<pre>
<b>参见</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.freebsd.org/cgi/man.cgi?query=fork&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">fork(2)</a>, <a href="http://www.freebsd.org/cgi/man.cgi?query=sigaction&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">sigaction(2)</a>, <a href="http://www.freebsd.org/cgi/man.cgi?query=wait&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">wait(2)</a>, <a href="http://www.freebsd.org/cgi/man.cgi?query=exit&sektion=3&apropos=0&manpath=FreeBSD+6.1-RELEASE">exit(3)</a>, <a href="http://www.freebsd.org/cgi/man.cgi?query=init&sektion=8&apropos=0&manpath=FreeBSD+6.1-RELEASE">init(8)</a></pre>
<pre>
<b>标准</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>_exit()</font>系统调用应当遵循ISO/IEC 9945-1:1990(``POSIX.1'')标准。</pre>
<pre>
<b>历史</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>_exit()</font>最早出现于AT&T UNIX第七版。</pre>
</pre>
</body></html>